﻿#region Using Directives
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;

using EcomProduct.Entities;
using EcomProduct.Data;
using EcomProduct.Data.Bases;
#endregion

namespace EcomProduct.Web.Data
{
	/// <summary>
	/// Represents the DataRepository.MenuProvider object that provides
	/// data to data-bound controls in multi-tier Web application architectures.
	/// </summary>
	[Designer(typeof(MenuDataSourceDesigner))]
	public class MenuDataSource : ProviderDataSource<Menu, MenuKey>
	{
		#region Constructors

		/// <summary>
		/// Initializes a new instance of the MenuDataSource class.
		/// </summary>
		public MenuDataSource() : base(DataRepository.MenuProvider)
		{
		}

		#endregion Constructors
		
		#region Properties
		
		/// <summary>
		/// Gets a reference to the MenuDataSourceView used by the MenuDataSource.
		/// </summary>
		protected MenuDataSourceView MenuView
		{
			get { return ( View as MenuDataSourceView ); }
		}
		
		/// <summary>
		/// Gets or sets the name of the method or function that
		/// the MenuDataSource control invokes to retrieve data.
		/// </summary>
		public MenuSelectMethod SelectMethod
		{
			get
			{
				MenuSelectMethod selectMethod = MenuSelectMethod.GetAll;
				Object method = ViewState["SelectMethod"];
				if ( method != null )
				{
					selectMethod = (MenuSelectMethod) method;
				}
				return selectMethod;
			}
			set { ViewState["SelectMethod"] = value; }
		}

		#endregion Properties
		
		#region Methods

		/// <summary>
		/// Creates a new instance of the MenuDataSourceView class that is to be
		/// used by the MenuDataSource.
		/// </summary>
		/// <returns>An instance of the MenuDataSourceView class.</returns>
		protected override BaseDataSourceView<Menu, MenuKey> GetNewDataSourceView()
		{
			return new MenuDataSourceView(this, DefaultViewName);
		}
		
		/// <summary>
        /// Creates a cache hashing key based on the startIndex, pageSize and the SelectMethod being used.
        /// </summary>
        /// <param name="startIndex">The current start row index.</param>
        /// <param name="pageSize">The current page size.</param>
        /// <returns>A string that can be used as a key for caching purposes.</returns>
		protected override string CacheHashKey(int startIndex, int pageSize)
        {
			return String.Format("{0}:{1}:{2}", SelectMethod, startIndex, pageSize);
        }
		
		#endregion Methods
	}
	
	/// <summary>
	/// Supports the MenuDataSource control and provides an interface for
	/// data-bound controls to perform data operations with business and data objects.
	/// </summary>
	public class MenuDataSourceView : ProviderDataSourceView<Menu, MenuKey>
	{
		#region Declarations

		#endregion Declarations
		
		#region Constructors

		/// <summary>
		/// Initializes a new instance of the MenuDataSourceView class.
		/// </summary>
		/// <param name="owner">A reference to the MenuDataSource which created this instance.</param>
		/// <param name="viewName">The name of the view.</param>
		public MenuDataSourceView(MenuDataSource owner, String viewName)
			: base(owner, viewName)
		{
		}
		
		#endregion Constructors
		
		#region Properties

		/// <summary>
		/// Gets a strongly-typed reference to the Owner property.
		/// </summary>
		internal MenuDataSource MenuOwner
		{
			get { return Owner as MenuDataSource; }
		}

		/// <summary>
		/// Gets or sets the name of the method or function that
		/// the DataSource control invokes to retrieve data.
		/// </summary>
		internal MenuSelectMethod SelectMethod
		{
			get { return MenuOwner.SelectMethod; }
			set { MenuOwner.SelectMethod = value; }
		}

		/// <summary>
		/// Gets a strongly typed reference to the Provider property.
		/// </summary>
		internal MenuProviderBase MenuProvider
		{
			get { return Provider as MenuProviderBase; }
		}

		#endregion Properties
		
		#region Methods
		
		/// <summary>
		/// Gets a collection of Entity objects based on the value of the SelectMethod property.
		/// </summary>
		/// <param name="count">The total number of rows in the DataSource.</param>
		/// <returns>A collection of Entity objects.</returns>
		protected override IList<Menu> GetSelectData(out int count)
		{
			Hashtable values = CollectionsUtil.CreateCaseInsensitiveHashtable(GetParameterValues());
			Hashtable customOutput = CollectionsUtil.CreateCaseInsensitiveHashtable();
			IList<Menu> results = null;
			Menu item;
			count = 0;
			
			System.String _alias_nullable;
			System.Boolean _isDisabled;
			System.Boolean _isProduct;
			System.Boolean _isRemoved;
			System.Int64 _id;
			System.String _language;
			System.Int64 _originalId;
			System.Int64 _parentId;

			switch ( SelectMethod )
			{
				case MenuSelectMethod.Get:
					MenuKey entityKey  = new MenuKey();
					entityKey.Load(values);
					item = MenuProvider.Get(GetTransactionManager(), entityKey);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetAll:
                    results = MenuProvider.GetAll(GetTransactionManager(), StartIndex, PageSize, out count);
                    break;
				case MenuSelectMethod.GetPaged:
					results = MenuProvider.GetPaged(GetTransactionManager(), WhereClause, OrderBy, PageIndex, PageSize, out count);
					break;
				case MenuSelectMethod.Find:
					if ( FilterParameters != null )
						results = MenuProvider.Find(GetTransactionManager(), FilterParameters, OrderBy, StartIndex, PageSize, out count);
					else
						results = MenuProvider.Find(GetTransactionManager(), WhereClause, StartIndex, PageSize, out count);
                    break;
				// PK
				case MenuSelectMethod.GetById:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					item = MenuProvider.GetById(GetTransactionManager(), _id);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				// IX
				case MenuSelectMethod.GetByAlias:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					item = MenuProvider.GetByAlias(GetTransactionManager(), _alias_nullable);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsDisabled:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsDisabled(GetTransactionManager(), _alias_nullable, _isDisabled);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsDisabledIsProduct:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsDisabledIsProduct(GetTransactionManager(), _alias_nullable, _isDisabled, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsDisabledIsRemoved:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsDisabledIsRemoved(GetTransactionManager(), _alias_nullable, _isDisabled, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsDisabledIsRemovedIsProduct:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsDisabledIsRemovedIsProduct(GetTransactionManager(), _alias_nullable, _isDisabled, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsProduct:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsProduct(GetTransactionManager(), _alias_nullable, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsRemoved:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsRemoved(GetTransactionManager(), _alias_nullable, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByAliasIsRemovedIsProduct:
					_alias_nullable = (System.String) EntityUtil.ChangeType(values["Alias"], typeof(System.String));
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByAliasIsRemovedIsProduct(GetTransactionManager(), _alias_nullable, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsDisabled:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsDisabled(GetTransactionManager(), _id, _isDisabled);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsDisabledIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsDisabledIsProduct(GetTransactionManager(), _id, _isDisabled, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsDisabledIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsDisabledIsRemoved(GetTransactionManager(), _id, _isDisabled, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsDisabledIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _id, _isDisabled, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsProduct(GetTransactionManager(), _id, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsRemoved(GetTransactionManager(), _id, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdIsRemovedIsProduct(GetTransactionManager(), _id, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguage:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					item = MenuProvider.GetByIdLanguage(GetTransactionManager(), _id, _language);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsDisabled:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsDisabled(GetTransactionManager(), _id, _language, _isDisabled);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsDisabledIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsDisabledIsProduct(GetTransactionManager(), _id, _language, _isDisabled, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsDisabledIsProductIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsDisabledIsProductIsRemoved(GetTransactionManager(), _id, _language, _isDisabled, _isProduct, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsDisabledIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsDisabledIsRemoved(GetTransactionManager(), _id, _language, _isDisabled, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsProduct(GetTransactionManager(), _id, _language, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdLanguageIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdLanguageIsRemoved(GetTransactionManager(), _id, _language, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalId:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					item = MenuProvider.GetByIdOriginalId(GetTransactionManager(), _id, _originalId);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsDisabled:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsDisabled(GetTransactionManager(), _id, _originalId, _isDisabled);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsDisabledIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsDisabledIsProduct(GetTransactionManager(), _id, _originalId, _isDisabled, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsDisabledIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsDisabledIsRemoved(GetTransactionManager(), _id, _originalId, _isDisabled, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsDisabledIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _id, _originalId, _isDisabled, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsProduct(GetTransactionManager(), _id, _originalId, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsRemoved(GetTransactionManager(), _id, _originalId, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdOriginalIdIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdOriginalIdIsRemovedIsProduct(GetTransactionManager(), _id, _originalId, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentId:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					item = MenuProvider.GetByIdParentId(GetTransactionManager(), _id, _parentId);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsDisabled:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsDisabled(GetTransactionManager(), _id, _parentId, _isDisabled);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsDisabledIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsDisabledIsProduct(GetTransactionManager(), _id, _parentId, _isDisabled, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsDisabledIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsDisabledIsRemoved(GetTransactionManager(), _id, _parentId, _isDisabled, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsDisabledIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _id, _parentId, _isDisabled, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsProduct(GetTransactionManager(), _id, _parentId, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsRemoved:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsRemoved(GetTransactionManager(), _id, _parentId, _isRemoved);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByIdParentIdIsRemovedIsProduct:
					_id = ( values["Id"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["Id"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					item = MenuProvider.GetByIdParentIdIsRemovedIsProduct(GetTransactionManager(), _id, _parentId, _isRemoved, _isProduct);
					results = new TList<Menu>();
					if ( item != null ) results.Add(item);
					count = results.Count;
					break;
				case MenuSelectMethod.GetByLanguageIsDisabled:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsDisabled(GetTransactionManager(), _language, _isDisabled, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsDisabledIsProduct:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsDisabledIsProduct(GetTransactionManager(), _language, _isDisabled, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsDisabledIsRemoved:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsDisabledIsRemoved(GetTransactionManager(), _language, _isDisabled, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsDisabledIsRemovedIsProduct:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsDisabledIsRemovedIsProduct(GetTransactionManager(), _language, _isDisabled, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsProduct:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsProduct(GetTransactionManager(), _language, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsRemoved:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsRemoved(GetTransactionManager(), _language, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByLanguageIsRemovedIsProduct:
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByLanguageIsRemovedIsProduct(GetTransactionManager(), _language, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalId:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					results = MenuProvider.GetByOriginalId(GetTransactionManager(), _originalId, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsDisabled:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsDisabled(GetTransactionManager(), _originalId, _isDisabled, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsDisabledIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsDisabledIsProduct(GetTransactionManager(), _originalId, _isDisabled, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsDisabledIsRemoved:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsDisabledIsRemoved(GetTransactionManager(), _originalId, _isDisabled, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsDisabledIsRemovedIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _originalId, _isDisabled, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsProduct(GetTransactionManager(), _originalId, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsRemoved:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsRemoved(GetTransactionManager(), _originalId, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdIsRemovedIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdIsRemovedIsProduct(GetTransactionManager(), _originalId, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentId:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					results = MenuProvider.GetByOriginalIdParentId(GetTransactionManager(), _originalId, _parentId, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsDisabled:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsDisabled(GetTransactionManager(), _originalId, _parentId, _isDisabled, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsDisabledIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsDisabledIsProduct(GetTransactionManager(), _originalId, _parentId, _isDisabled, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsDisabledIsRemoved:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsDisabledIsRemoved(GetTransactionManager(), _originalId, _parentId, _isDisabled, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsDisabledIsRemovedIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _originalId, _parentId, _isDisabled, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsProduct(GetTransactionManager(), _originalId, _parentId, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsRemoved:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsRemoved(GetTransactionManager(), _originalId, _parentId, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByOriginalIdParentIdIsRemovedIsProduct:
					_originalId = ( values["OriginalId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["OriginalId"], typeof(System.Int64)) : (long)0;
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByOriginalIdParentIdIsRemovedIsProduct(GetTransactionManager(), _originalId, _parentId, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentId:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					results = MenuProvider.GetByParentId(GetTransactionManager(), _parentId, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsDisabled:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsDisabled(GetTransactionManager(), _parentId, _isDisabled, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsDisabledIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsDisabledIsProduct(GetTransactionManager(), _parentId, _isDisabled, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsDisabledIsRemoved:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsDisabledIsRemoved(GetTransactionManager(), _parentId, _isDisabled, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsDisabledIsRemovedIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsDisabledIsRemovedIsProduct(GetTransactionManager(), _parentId, _isDisabled, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsProduct(GetTransactionManager(), _parentId, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsRemoved:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsRemoved(GetTransactionManager(), _parentId, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdIsRemovedIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdIsRemovedIsProduct(GetTransactionManager(), _parentId, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguage:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					results = MenuProvider.GetByParentIdLanguage(GetTransactionManager(), _parentId, _language, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsDisabled:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsDisabled(GetTransactionManager(), _parentId, _language, _isDisabled, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsDisabledIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsDisabledIsProduct(GetTransactionManager(), _parentId, _language, _isDisabled, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsDisabledIsRemoved:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsDisabledIsRemoved(GetTransactionManager(), _parentId, _language, _isDisabled, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsDisabledIsRemovedIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isDisabled = ( values["IsDisabled"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsDisabled"], typeof(System.Boolean)) : false;
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsDisabledIsRemovedIsProduct(GetTransactionManager(), _parentId, _language, _isDisabled, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsProduct(GetTransactionManager(), _parentId, _language, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsRemoved:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsRemoved(GetTransactionManager(), _parentId, _language, _isRemoved, this.StartIndex, this.PageSize, out count);
					break;
				case MenuSelectMethod.GetByParentIdLanguageIsRemovedIsProduct:
					_parentId = ( values["ParentId"] != null ) ? (System.Int64) EntityUtil.ChangeType(values["ParentId"], typeof(System.Int64)) : (long)0;
					_language = ( values["Language"] != null ) ? (System.String) EntityUtil.ChangeType(values["Language"], typeof(System.String)) : "N'vn'";
					_isRemoved = ( values["IsRemoved"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsRemoved"], typeof(System.Boolean)) : false;
					_isProduct = ( values["IsProduct"] != null ) ? (System.Boolean) EntityUtil.ChangeType(values["IsProduct"], typeof(System.Boolean)) : false;
					results = MenuProvider.GetByParentIdLanguageIsRemovedIsProduct(GetTransactionManager(), _parentId, _language, _isRemoved, _isProduct, this.StartIndex, this.PageSize, out count);
					break;
				// FK
				// M:M
				// Custom
				default:
					break;
			}

			if ( results != null && count < 1 )
			{
				count = results.Count;

				if ( !String.IsNullOrEmpty(CustomMethodRecordCountParamName) )
				{
					object objCustomCount = EntityUtil.ChangeType(customOutput[CustomMethodRecordCountParamName], typeof(Int32));
					
					if ( objCustomCount != null )
					{
						count = (int) objCustomCount;
					}
				}
			}
			
			return results;
		}
		
		/// <summary>
		/// Gets the values of any supplied parameters for internal caching.
		/// </summary>
		/// <param name="values">An IDictionary object of name/value pairs.</param>
		protected override void GetSelectParameters(IDictionary values)
		{
			if ( SelectMethod == MenuSelectMethod.Get || SelectMethod == MenuSelectMethod.GetById )
			{
				EntityId = GetEntityKey(values);
			}
		}

		/// <summary>
		/// Performs a DeepLoad operation for the current entity if it has
		/// not already been performed.
		/// </summary>
		internal override void DeepLoad()
		{
			if ( !IsDeepLoaded )
			{
				Menu entity = GetCurrentEntity();
				
				if ( entity != null )
				{
					// execute deep load method
					MenuProvider.DeepLoad(GetTransactionManager(), GetCurrentEntity(), EnableRecursiveDeepLoad);
					// set loaded flag
					IsDeepLoaded = true;
				}
			}
		}

		/// <summary>
		/// Performs a DeepLoad operation on the specified entity collection.
		/// </summary>
		/// <param name="entityList"></param>
		/// <param name="properties"></param>
		internal override void DeepLoad(TList<Menu> entityList, ProviderDataSourceDeepLoadList properties)
		{
			// execute deep load method
			MenuProvider.DeepLoad(GetTransactionManager(), entityList, properties.Recursive, properties.Method, properties.GetTypes());
		}

		#endregion Select Methods
	}
	
	#region MenuDataSourceDesigner

	/// <summary>
	/// Provides design-time support in a design host for the MenuDataSource class.
	/// </summary>
	public class MenuDataSourceDesigner : ProviderDataSourceDesigner<Menu, MenuKey>
	{
		/// <summary>
		/// Initializes a new instance of the MenuDataSourceDesigner class.
		/// </summary>
		public MenuDataSourceDesigner()
		{
		}

		/// <summary>
		/// Gets or sets the SelectMethod property.
		/// </summary>
		public MenuSelectMethod SelectMethod
		{
			get { return ((MenuDataSource) DataSource).SelectMethod; }
			set { SetPropertyValue("SelectMethod", value); }
		}

		/// <summary>Gets the designer action list collection for this designer.</summary>
		/// <returns>The <see cref="T:System.ComponentModel.Design.DesignerActionListCollection"/>
		/// associated with this designer.</returns>
		public override DesignerActionListCollection ActionLists
		{
			get
			{
				DesignerActionListCollection actions = new DesignerActionListCollection();
				actions.Add(new MenuDataSourceActionList(this));
				actions.AddRange(base.ActionLists);
				return actions;
			}
		}
	}

	#region MenuDataSourceActionList

	/// <summary>
	/// Supports the MenuDataSourceDesigner class.
	/// </summary>
	internal class MenuDataSourceActionList : DesignerActionList
	{
		private MenuDataSourceDesigner _designer;

		/// <summary>
		/// Initializes a new instance of the MenuDataSourceActionList class.
		/// </summary>
		/// <param name="designer"></param>
		public MenuDataSourceActionList(MenuDataSourceDesigner designer) : base(designer.Component)
		{
			_designer = designer;
		}

		/// <summary>
		/// Gets or sets the SelectMethod property.
		/// </summary>
		public MenuSelectMethod SelectMethod
		{
			get { return _designer.SelectMethod; }
			set { _designer.SelectMethod = value; }
		}

		/// <summary>
		/// Returns the collection of <see cref="T:System.ComponentModel.Design.DesignerActionItem"/>
		/// objects contained in the list.
		/// </summary>
		/// <returns>A <see cref="T:System.ComponentModel.Design.DesignerActionItem"/>
		/// array that contains the items in this list.</returns>
		public override DesignerActionItemCollection GetSortedActionItems()
		{
			DesignerActionItemCollection items = new DesignerActionItemCollection();
			items.Add(new DesignerActionPropertyItem("SelectMethod", "Select Method", "Methods"));
			return items;
		}
	}

	#endregion MenuDataSourceActionList
	
	#endregion MenuDataSourceDesigner
	
	#region MenuSelectMethod
	
	/// <summary>
	/// Enumeration of method names available for the MenuDataSource.SelectMethod property.
	/// </summary>
	public enum MenuSelectMethod
	{
		/// <summary>
		/// Represents the Get method.
		/// </summary>
		Get,
		/// <summary>
		/// Represents the GetAll method.
		/// </summary>
		GetAll,
		/// <summary>
		/// Represents the GetPaged method.
		/// </summary>
		GetPaged,
		/// <summary>
		/// Represents the Find method.
		/// </summary>
		Find,
		/// <summary>
		/// Represents the GetByAlias method.
		/// </summary>
		GetByAlias,
		/// <summary>
		/// Represents the GetByAliasIsDisabled method.
		/// </summary>
		GetByAliasIsDisabled,
		/// <summary>
		/// Represents the GetByAliasIsDisabledIsProduct method.
		/// </summary>
		GetByAliasIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByAliasIsDisabledIsRemoved method.
		/// </summary>
		GetByAliasIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByAliasIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByAliasIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByAliasIsProduct method.
		/// </summary>
		GetByAliasIsProduct,
		/// <summary>
		/// Represents the GetByAliasIsRemoved method.
		/// </summary>
		GetByAliasIsRemoved,
		/// <summary>
		/// Represents the GetByAliasIsRemovedIsProduct method.
		/// </summary>
		GetByAliasIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdIsDisabled method.
		/// </summary>
		GetByIdIsDisabled,
		/// <summary>
		/// Represents the GetByIdIsDisabledIsProduct method.
		/// </summary>
		GetByIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByIdIsDisabledIsRemoved method.
		/// </summary>
		GetByIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdIsProduct method.
		/// </summary>
		GetByIdIsProduct,
		/// <summary>
		/// Represents the GetByIdIsRemoved method.
		/// </summary>
		GetByIdIsRemoved,
		/// <summary>
		/// Represents the GetByIdIsRemovedIsProduct method.
		/// </summary>
		GetByIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdLanguage method.
		/// </summary>
		GetByIdLanguage,
		/// <summary>
		/// Represents the GetByIdLanguageIsDisabled method.
		/// </summary>
		GetByIdLanguageIsDisabled,
		/// <summary>
		/// Represents the GetByIdLanguageIsDisabledIsProduct method.
		/// </summary>
		GetByIdLanguageIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByIdLanguageIsDisabledIsProductIsRemoved method.
		/// </summary>
		GetByIdLanguageIsDisabledIsProductIsRemoved,
		/// <summary>
		/// Represents the GetByIdLanguageIsDisabledIsRemoved method.
		/// </summary>
		GetByIdLanguageIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByIdLanguageIsProduct method.
		/// </summary>
		GetByIdLanguageIsProduct,
		/// <summary>
		/// Represents the GetByIdLanguageIsRemoved method.
		/// </summary>
		GetByIdLanguageIsRemoved,
		/// <summary>
		/// Represents the GetByIdOriginalId method.
		/// </summary>
		GetByIdOriginalId,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsDisabled method.
		/// </summary>
		GetByIdOriginalIdIsDisabled,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsDisabledIsProduct method.
		/// </summary>
		GetByIdOriginalIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsDisabledIsRemoved method.
		/// </summary>
		GetByIdOriginalIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByIdOriginalIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsProduct method.
		/// </summary>
		GetByIdOriginalIdIsProduct,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsRemoved method.
		/// </summary>
		GetByIdOriginalIdIsRemoved,
		/// <summary>
		/// Represents the GetByIdOriginalIdIsRemovedIsProduct method.
		/// </summary>
		GetByIdOriginalIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdParentId method.
		/// </summary>
		GetByIdParentId,
		/// <summary>
		/// Represents the GetByIdParentIdIsDisabled method.
		/// </summary>
		GetByIdParentIdIsDisabled,
		/// <summary>
		/// Represents the GetByIdParentIdIsDisabledIsProduct method.
		/// </summary>
		GetByIdParentIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByIdParentIdIsDisabledIsRemoved method.
		/// </summary>
		GetByIdParentIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByIdParentIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByIdParentIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByIdParentIdIsProduct method.
		/// </summary>
		GetByIdParentIdIsProduct,
		/// <summary>
		/// Represents the GetByIdParentIdIsRemoved method.
		/// </summary>
		GetByIdParentIdIsRemoved,
		/// <summary>
		/// Represents the GetByIdParentIdIsRemovedIsProduct method.
		/// </summary>
		GetByIdParentIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByLanguageIsDisabled method.
		/// </summary>
		GetByLanguageIsDisabled,
		/// <summary>
		/// Represents the GetByLanguageIsDisabledIsProduct method.
		/// </summary>
		GetByLanguageIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByLanguageIsDisabledIsRemoved method.
		/// </summary>
		GetByLanguageIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByLanguageIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByLanguageIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByLanguageIsProduct method.
		/// </summary>
		GetByLanguageIsProduct,
		/// <summary>
		/// Represents the GetByLanguageIsRemoved method.
		/// </summary>
		GetByLanguageIsRemoved,
		/// <summary>
		/// Represents the GetByLanguageIsRemovedIsProduct method.
		/// </summary>
		GetByLanguageIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByOriginalId method.
		/// </summary>
		GetByOriginalId,
		/// <summary>
		/// Represents the GetByOriginalIdIsDisabled method.
		/// </summary>
		GetByOriginalIdIsDisabled,
		/// <summary>
		/// Represents the GetByOriginalIdIsDisabledIsProduct method.
		/// </summary>
		GetByOriginalIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdIsDisabledIsRemoved method.
		/// </summary>
		GetByOriginalIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByOriginalIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByOriginalIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdIsProduct method.
		/// </summary>
		GetByOriginalIdIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdIsRemoved method.
		/// </summary>
		GetByOriginalIdIsRemoved,
		/// <summary>
		/// Represents the GetByOriginalIdIsRemovedIsProduct method.
		/// </summary>
		GetByOriginalIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdParentId method.
		/// </summary>
		GetByOriginalIdParentId,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsDisabled method.
		/// </summary>
		GetByOriginalIdParentIdIsDisabled,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsDisabledIsProduct method.
		/// </summary>
		GetByOriginalIdParentIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsDisabledIsRemoved method.
		/// </summary>
		GetByOriginalIdParentIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByOriginalIdParentIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsProduct method.
		/// </summary>
		GetByOriginalIdParentIdIsProduct,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsRemoved method.
		/// </summary>
		GetByOriginalIdParentIdIsRemoved,
		/// <summary>
		/// Represents the GetByOriginalIdParentIdIsRemovedIsProduct method.
		/// </summary>
		GetByOriginalIdParentIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByParentId method.
		/// </summary>
		GetByParentId,
		/// <summary>
		/// Represents the GetByParentIdIsDisabled method.
		/// </summary>
		GetByParentIdIsDisabled,
		/// <summary>
		/// Represents the GetByParentIdIsDisabledIsProduct method.
		/// </summary>
		GetByParentIdIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByParentIdIsDisabledIsRemoved method.
		/// </summary>
		GetByParentIdIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByParentIdIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByParentIdIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByParentIdIsProduct method.
		/// </summary>
		GetByParentIdIsProduct,
		/// <summary>
		/// Represents the GetByParentIdIsRemoved method.
		/// </summary>
		GetByParentIdIsRemoved,
		/// <summary>
		/// Represents the GetByParentIdIsRemovedIsProduct method.
		/// </summary>
		GetByParentIdIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByParentIdLanguage method.
		/// </summary>
		GetByParentIdLanguage,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsDisabled method.
		/// </summary>
		GetByParentIdLanguageIsDisabled,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsDisabledIsProduct method.
		/// </summary>
		GetByParentIdLanguageIsDisabledIsProduct,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsDisabledIsRemoved method.
		/// </summary>
		GetByParentIdLanguageIsDisabledIsRemoved,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsDisabledIsRemovedIsProduct method.
		/// </summary>
		GetByParentIdLanguageIsDisabledIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsProduct method.
		/// </summary>
		GetByParentIdLanguageIsProduct,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsRemoved method.
		/// </summary>
		GetByParentIdLanguageIsRemoved,
		/// <summary>
		/// Represents the GetByParentIdLanguageIsRemovedIsProduct method.
		/// </summary>
		GetByParentIdLanguageIsRemovedIsProduct,
		/// <summary>
		/// Represents the GetById method.
		/// </summary>
		GetById
	}
	
	#endregion MenuSelectMethod

	#region MenuFilter
	
	/// <summary>
	/// A strongly-typed instance of the <see cref="SqlFilter&lt;EntityColumn&gt;"/> class
	/// that is used exclusively with a <see cref="Menu"/> object.
	/// </summary>
	[CLSCompliant(true)]
	public class MenuFilter : SqlFilter<MenuColumn>
	{
	}
	
	#endregion MenuFilter

	#region MenuExpressionBuilder
	
	/// <summary>
	/// A strongly-typed instance of the <see cref="SqlExpressionBuilder&lt;EntityColumn&gt;"/> class
	/// that is used exclusively with a <see cref="Menu"/> object.
	/// </summary>
	[CLSCompliant(true)]
	public class MenuExpressionBuilder : SqlExpressionBuilder<MenuColumn>
	{
	}
	
	#endregion MenuExpressionBuilder	

	#region MenuProperty
	
	/// <summary>
	/// A strongly-typed instance of the <see cref="ChildEntityProperty&lt;MenuChildEntityTypes&gt;"/> class
	/// that is used exclusively with a <see cref="Menu"/> object.
	/// </summary>
	[CLSCompliant(true)]
	public class MenuProperty : ChildEntityProperty<MenuChildEntityTypes>
	{
	}
	
	#endregion MenuProperty
}

